System and method for implementing an artificially intelligent virtual assistant using machine learning

ABSTRACT

Systems and methods for implementing an artificially intelligent virtual assistant includes collecting a user query; using a competency classification machine learning model to generate a competency label for the user query; using a slot identification machine learning model to segment the text of the query and label each of the slots of the query; generating a slot value for each of the slots of the query; generating a handler for each of the slot values; and using the slot values to: identify an external data source relevant to the user query, fetch user data from the external data source, and apply one or more operations to the query to generate response data; and using the response data, to generate a response to the user query.

GOVERNMENT RIGHTS

The subject matter of the invention may be subject to U.S. GovernmentRights under National Science Foundation grant: NSF SBIR Phase 1Grant—1622049.

TECHNICAL FIELD

The inventions herein relate generally to the virtual assistant field,and more specifically to a new and useful system and method forimplementing an artificially intelligent assistant using machinelearning in the virtual assistant field.

BACKGROUND

Modern virtual assistants and/or online chatbots may typically beemployed to perform various tasks or services based on an interactionwith a user. Typically, a user interacting with a virtual assistant maypose a question or otherwise submit a command to the virtual assistantto which the virtual assistant may provide a response or a result. Manyof these virtual assistants may be implemented using a rules-basedapproach, which typically requires coding or preprogramming many orhundreds of rules that may govern a manner in which the virtualassistant should operate to respond to a given query or command from auser.

While the rules-based approach for implementing a virtual assistant maybe useful for addressing pointed or specific queries or commands made bya user, the rigid or finite nature of this approach severely limits acapability of a virtual assistant to address queries or commands from auser that exceed the scope of the finite realm of pointed and/orspecific queries or commands that are addressable by the finite set ofrules that drive the response operations of the virtual assistant.

That is, the modern virtual assistants implemented via a rules-basedapproach for generating responses to users may not fully satisfy queriesand commands posed by a user for which there are no predetermined rulesto provide a meaningful response or result to the user.

Therefore, there is a need in the virtual assistant field for a flexiblevirtual assistant solution that is capable of evolving beyond a finiteset of rules for effectively and conversantly interacting with a user.The embodiments of the present application described herein providetechnical solutions that address, at least, the need described above, aswell as the deficiencies of the state of the art described throughoutthe present application.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 illustrates a schematic representation of a system in accordancewith one or more embodiments of the present application;

FIG. 2 illustrates an example method in accordance with one or moreembodiments of the present application;

FIGS. 3A-3B illustrate example schematics for implementing portions of amethod and a system in accordance with one or more embodiments of thepresent application;

FIG. 4 illustrates an example schematic for implementing portions of amethod and a system in accordance with one or more embodiments of thepresent application;

FIG. 5 illustrates an example schematic for implementing portions of amethod and system in accordance with one or more embodiments of thepresent application; and

FIGS. 6A-6B illustrate an example schematic for implementing portions ofa method and system in accordance with one or more embodiments of thepresent application.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

The following description of the preferred embodiments of the presentapplication are not intended to limit the inventions to these preferredembodiments, but rather to enable any person skilled in the art to makeand use these inventions.

Overview

As discussed above, existing virtual assistant implementations do nothave the requisite flexibility to address unrecognized queries orcommands from user in which there are no predetermined rules designedaround narrowly-defined intents. This inflexible structure cannotreasonably and efficiently address the many variances in the manners inwhich a user may pose a query or command to the virtual assistant.

The embodiments of the present application, however, provide artificialintelligence virtual assistant platform and natural language processingcapabilities that function to process and comprehend structured and/orunstructured natural language input from a user. Using one or moretrained (deep) machine learning models, such as long short-term memory(LSTM) neural network, the embodiments of the present application mayfunction to understand any variety of natural language utterance ortextual input provided to the system. The one or more deep machinelearning models post deployment can continue to train using unknown andpreviously incomprehensible queries or commands from users. As a result,the underlying system that implements the (deep) machine learning modelsmay function to evolve with increasing interactions with users andtraining rather than being governed by a fixed set of predeterminedrules for responding to narrowly-defined queries, as may be accomplishedin the current state of the art.

Accordingly, the evolving nature of the artificial intelligence platformdescribed herein therefore enables the artificially intelligent virtualassistant latitude to learn without a need for additional programmingand the capabilities to ingest complex (or uncontemplated) utterancesand text input to provide meaningful and accurate responses.

1. System for Implementing an Artificially Intelligent Virtual Assistant

As shown in FIG. 1, a system 100 that implements an artificiallyintelligent virtual assistant includes an artificial intelligence (AI)virtual assistant platform 110 that includes a competency classificationengine 120, a slot identification engine 130, a slot value extractor135, an observables extractor 140, an artificial intelligence virtualassistant response generator 150, and data sources 160. The system 100may additionally include an automatic speech recognition unit 115 and auser interface system 105.

The system 100 functions to implement the artificial intelligencevirtual assistant platform 110 to enable intelligent and conversationalresponses by an artificially intelligent virtual assistant to a userquery and/or user command input into the system 100. Specifically, thesystem 100 functions to ingest user input in the form of text or speechinto a user interface 160. At natural language processing components ofthe system 100 that may include, at least, the competency classificationengine 120 the slot identification engine 130, and a slot valueextractor 135, the system 100 functions to identify a competencyclassification label for the user input data and parse the user inputdata into comprehensible slots or segments that may, in turn, beconverted into program-comprehensible and/or useable features.Leveraging the outputs of the natural language processing components ofthe system 100, the observables extractor 140 may function to generatehandlers based on the outcomes of the natural language processingcomponents and further, execute the generated handlers to therebyperform various operations that accesses one or more data sourcesrelevant to the query or command and that also performs one or moreoperations (e.g., data filtering, data aggregation, and the like) to thedata accessed from the one or more data sources.

The artificial intelligence virtual assistant platform 110 functions toimplement an artificially intelligent virtual assistant capable ofinteracting and communication with a user. The artificial intelligenceplatform no may be implemented via one or more specifically configuredweb or private computing servers (or a distributed computing system;e.g., the cloud) or any suitable system for implementing the system 100and/or the method 200.

In some implementations, the artificial intelligence virtual assistantplatform 110 may be a remote platform implemented over the web (e.g.,using web servers) that is configured to interact with distinct anddisparate service providers. In such implementation, an event such as auser attempting to access one or more services or data from one or moredata sources of the service provider may trigger an implementation ofthe artificially intelligent virtual assistant of the AI platform 110.Thus, the AI virtual assistant platform 110 may work in conjunction withthe service provider to attend to the one or more queries and/orcommands of the users of the service provider. In this implementation,the data sources 160 may be data sources of the service provider thatare external data sources to the AI virtual assistant platform 110.

The competency classification engine 120 together with the slotidentification engine 130 and the slot value extractor 135 preferablyfunction to define a natural language processing (NLP) component of theartificial intelligence platform 110. In one implementation, the naturallanguage processing component may additionally include the automaticspeech recognition unit 105.

The competency classification engine 120 functions to implement one ormore competency classification machine learning models to label userinput data comprising a user query or a user command. The one or morecompetency classification machine learning models may include one ormore deep machine learning algorithms (e.g., a recurrent neural network,etc.) that have been specifically trained to identify and/or classify acompetency label for utterance input and/or textual input. The traininginput used in training the one or more deep machine learning algorithmsof the competency classification engine 120 may include crowdsourceddata obtained from one or more disparate user query or user command datasources and/or platforms (e.g., messaging platforms, etc.). However, itshall be noted that the system 100 may obtain training data from anysuitable external data sources. The one or more deep machine learningalgorithms may additionally be continually trained using user queriesand user commands that were miss-predicted or incorrectly analyzed bythe system 100 including the competency classification engine 120.

The competency classification engine 120 may additionally be configuredto generate or identify one competency classification label for eachuser query and/or user command input into the engine 120. The competencyclassification engine 120 may be configured to identify or select from aplurality of predetermined competency classification labels (e.g.,Income, Balance, Spending, Investment, Location, etc.). Each competencyclassification label available to the competency classification engine120 may define a universe of competency-specific functions available tothe system 100 or the artificially intelligent assistant for handling auser query or user command. That is, once a competency classificationlabel is identified for a user query or user command, the system 100 mayuse the competency classification label to restrict one or morecomputer-executable operations (e.g., handlers) and/or filters that maybe used by system components when generating a response to the userquery or user command. The one or more computer-executable operationsand/or filters associated with each of the plurality of competencyclassifications may be different and distinct and thus, may be used toprocess user queries and/or user commands differently as well as used toprocess user data (e.g., transaction data obtained from external datasources 160).

Additionally, the competency classification machine learning model 120may function to implement a single deep machine learning algorithm thathas been trained to identify multiple competency classification labels.Alternatively, the competency classification machine learning model 120may function to implement an ensemble of deep machine learningalgorithms in which each deep machine learning algorithm of the ensemblefunctions to identify a single competency classification label for userinput data. For example, if the competency classification model 120 iscapable of identifying three distinct competency classification labels,such as Income, Balance, and Spending, then the ensemble of deep machinelearning algorithms may include three distinct deep machine learningalgorithms that classify user input data as Income, Balance, andSpending, respectively. While each of the deep machine learningalgorithms that define the ensemble may individually be configure toidentify a specific competency classification label, the combination ofdeep machine learning algorithms may additionally be configured to worktogether to generate individual competency classification labels. Forexample, if the system receives user input data that is determined to behighly complex (e.g., based on a value or computation of the user inputdata exceeding a complexity threshold), the system 100 may function toselectively implement a subset (e.g., three ML algorithms from a totalof nine ML algorithms or the like) of the ensemble of machine learningalgorithms to generate a competency classification label.

Additionally, the competency classification engine 120 may beimplemented by the one or more computing servers, computer processors,and the like of the artificial intelligence virtual assistance platform110.

The slot identification engine 130 functions to implement one or moremachine learning models to identify slots or meaningful segments of userqueries or user commands and also, to assign a slot classification labelfor each identified slot. The one or more machine learning modelsimplemented by the slot identification engine 130 may implement one ormore trained deep machine learning algorithms (e.g., recurrent neuralnetworks). The one or more deep machine learning algorithms of the slotidentification engine 130 may be trained in any suitable mannerincluding with sample data of user queries and user commands that havebeen slotted and assigned slot values and/or user system derivedexamples. Alternatively, the slot identification engine 130 may functionto implement an ensemble of deep machine learning algorithms in whicheach deep machine learning algorithm of the ensemble functions toidentify distinct slot labels or slot type labels for user input data.For example, slot identification engine 130 may be capable ofidentifying multiple distinct slot classification labels, such asIncome, Account, and Date labels, then the ensemble of deep machinelearning algorithms may include three distinct deep machine learningalgorithms that function to classify segments or tokens of the userinput data as Income, Account, and Date, respectively.

A slot, as referred to herein, generally relates to a defined segment ofuser input data (e.g., user query or user command) that may include oneor more data elements (e.g., terms, values, characters, media, etc.).Accordingly, the slot identification engine 130 may function todecompose a query or command into defined, essential components thatimplicate meaningful information to be used when generating a responseto the user query or command.

A slot label which may also be referred to herein as a slotclassification label may be generated by the one or more slotclassification deep machine learning models of the engine 130. A slotlabel, as referred to herein, generally relates to one of a plurality ofslot labels that generally describes a slot (or the data elements withinthe slot) of a user query or user command. The slot label may define auniverse or set of machine or program-comprehensible objects that may begenerated for the data elements within an identified slot.

Like the competency classification engine 120, the slot identificationengine 120 may implement a single deep machine learning algorithm or anensemble of deep machine learning algorithms. Additionally, the slotidentification engine 130 may be implemented by the one or morecomputing servers, computer processors, and the like of the artificialintelligence virtual assistance platform 110.

The machine learning models and/or the ensemble of machine learningmodels may employ any suitable machine learning including one or moreof: supervised learning (e.g., using logistic regression, using backpropagation neural networks, using random forests, decision trees,etc.), unsupervised learning (e.g., using an Apriori algorithm, usingK-means clustering), semi-supervised learning, reinforcement learning(e.g., using a Q-learning algorithm, using temporal differencelearning), and any other suitable learning style. Each module of theplurality can implement any one or more of: a regression algorithm(e.g., ordinary least squares, logistic regression, stepwise regression,multivariate adaptive regression splines, locally estimated scatterplotsmoothing, etc.), an instance-based method (e.g., k-nearest neighbor,learning vector quantization, self-organizing map, etc.), aregularization method (e.g., ridge regression, least absolute shrinkageand selection operator, elastic net, etc.), a decision tree learningmethod (e.g., classification and regression tree, iterative dichotomiser3, C4.5, chi-squared automatic interaction detection, decision stump,random forest, multivariate adaptive regression splines, gradientboosting machines, etc.), a Bayesian method (e.g., naïve Bayes, averagedone-dependence estimators, Bayesian belief network, etc.), a kernelmethod (e.g., a support vector machine, a radial basis function, alinear discriminate analysis, etc.), a clustering method (e.g., k-meansclustering, expectation maximization, etc.), an associated rule learningalgorithm (e.g., an Apriori algorithm, an Eclat algorithm, etc.), anartificial neural network model (e.g., a Perceptron method, aback-propagation method, a Hopfield network method, a self-organizingmap method, a learning vector quantization method, etc.), a deeplearning algorithm (e.g., a restricted Boltzmann machine, a deep beliefnetwork method, a convolution network method, a stacked auto-encodermethod, etc.), a dimensionality reduction method (e.g., principalcomponent analysis, partial lest squares regression, Sammon mapping,multidimensional scaling, projection pursuit, etc.), an ensemble method(e.g., boosting, boostrapped aggregation, AdaBoost, stackedgeneralization, gradient boosting machine method, random forest method,etc.), and any suitable form of machine learning algorithm. Eachprocessing portion of the system 100 can additionally or alternativelyleverage: a probabilistic module, heuristic module, deterministicmodule, or any other suitable module leveraging any other suitablecomputation method, machine learning method or combination thereof.However, any suitable machine learning approach can otherwise beincorporated in the system 100. Further, any suitable model (e.g.,machine learning, non-machine learning, etc.) can be used inimplementing the artificially intelligent virtual assistant and/or othercomponents of the system 100.

The slot value extraction unit 135 functions to generate slot values byextracting each identified slot and assigned slot label of the userquery or user command and converting the data elements (i.e., slot data)within the slot to a machine or program-comprehensible object orinstance (e.g., term or value); that is, the slot label is mapped tocoding or data that a computer or program of the system 100 comprehendsand is able to manipulate or execute processes on. Accordingly, usingthe slot label generated by the slot identification engine 130, the slotextraction unit 135 identifies a set or group of machine orprogram-comprehensible objects or instances that may be applied to slotdata of a slot assigned with the slot label. Thus, the slot extractionunit 135 may convert the slot data of a slot to a machine orprogram-comprehensible object (e.g., slot values) based on the slotlabel and specifically, based on the available objects, instances, orvalues mapped to or made available under the slot label.

The observables extractor 140 functions to use the slot valuescomprising the one or more program-comprehensible objects generated atslot extraction unit 135 to determine or generate one or more handlersor subroutines for handling the data of or responding to the user queryor user command of user input data. The observables extractor 140 mayfunction to use the slot values provided by the slot extraction unit 135to determine one or more data sources relevant to and for addressing theuser query or the user command and determine one or more filters andfunctions or operations to apply to data accessed or collected from theone or more identified data sources. Thus, the coding or mapping of theslot data, performed by slot extraction unit 135, toprogram-comprehensible objects or values may be used to specificallyidentify the data sources and/or the one or more filters and operationsfor processing the data collected from the data sources.

The response generator 150 functions to use the competencyclassification label of the user input data to identify or select onepredetermined response template or one of a plurality of predeterminedresponse templates. For each competency classification label of thesystem 100, the system 100 may have stored a plurality of responsetemplates that may be selected by the response generator 150 based on anidentified competency classification label for user input data.Additionally, or alternatively, the response template may be selectedbased on both the competency classification label and one or moregenerated slot values. In such instance, the one or more slot values mayfunction to narrow the pool of response template selectable by theresponse generator to a subset of a larger pool of response templates totake into account the variations in a query or user command identifiedin the slot values. The response templates may generally a combinationof predetermined output language or text and one or more input slots forinterleaving the handler outputs determined by the observables extractor140.

The user interface system 105 may include any type of device orcombination of devices capable of receiving user input data andpresenting a response to the user input data from the artificiallyintelligent virtual assistant. In some embodiments, the user interfacesystem 105 receives user input data in the form of a verbal utteranceand passes the utterance to the automatic speech recognition unit 115 toconvert the utterance into text. The user interface system 105 mayinclude, but are not limited to, mobile computing devices (e.g., mobilephones, tablets, etc.) having a client application of the system 100,desktop computers or laptops implementing a web browser, an automatedteller machine, virtual and/or personal assistant devices (e.g., Alexa,Google Home, Cortana, Jarvis, etc.), chatbots or workboats, etc. Anintelligent personal assistant device (e.g., Alexa, etc.) may be anytype of device capable of touchless interaction with a user toperforming one or more tasks or operations including providing data orinformation and/or controlling one or more other devices (e.g.,computers, other user interfaces, etc.). Thus, an intelligent personalassistant may be used by a user to perform any portions of the methodsdescribed herein, including the steps and processes of method 200,described below. Additionally, a chatbot or a workbot may include anytype of program (e.g., slack bot, etc.) implemented by one or moredevices that may be used to interact with a user using any type of inputmethod (e.g., verbally, textually, etc.). The chatbot or workbot may beembedded or otherwise placed in operable communication and/or control ofa communication node and thus, capable of performing any process or taskincluding, but not limited to, acquiring and providing information andperforming one or more control operations.

2. Method for Implementing an Artificially Intelligent Virtual Assistant

As shown in FIG. 2, a method 200 for implementing an artificiallyintelligent virtual assistant includes collecting user input data S210,identifying a competency classification label based on the user inputdata S220, identifying one or more slots and slot labels of the userinput data S230, generating slot values for each of the slots of theuser input data S240, configuring handlers and executing one or morecomputer-executable operations for generating a response S250, andgenerating a response S260. The method 200 optionally includesprocessing and converting utterance data of the user input data totextual data S215.

The method 200 functions to identify a competency of the user input databy using a machine learning model to classify an area of competency ofthe user input data. The method 200 additionally functions to performslot value identification of the user input data that includesidentifying details in the query or command that enables the system toservice the query or command. In slot value identification, the systemmay function to segment or parse the query or command to identifyoperative terms that trigger one or more actions or operations by thesystem required for servicing the query or command. Accordingly, themethod 200 may initially function to decompose a query or command intointelligent segments and convert each of those segments intomachine-useable objects or operations. The method 200 may then functionto use the slot value identifications and slot value extractions togenerate one or more handlers (e.g., computer-executable tasks) for theuser input data that indicate all the computer tasks that should beperformed by the artificially intelligent virtual assistant to provide aresponse to the user query or user command.

2.1 Natural Language Processing Using Machine Learning

S210, which includes collecting user input data, functions to receiveuser input data in any form. The user input data may include input thatoriginates with or is provided by a user accessing, at least, part of asystem (e.g., system 100) implementing the method 200. The user inputdata may include, but is not limited to, speech or utterance input,textual input, gesture input, touch input, image input, and/or anysuitable or type of input. Preferably, the user input data comprises oneof (or a combination of) an utterance input and a textual input.Additionally, the user input data preferably includes a query by theuser or a command from the user.

In the case that the user input data comprises textual input, S210 mayfunction to direct the textual input directly to a natural languageprocessing engine of a system implementing the method 200. That is,without pre-processing the textual input, the method 200 may function toinitialize a natural language comprehension process to enable the systemimplementing the method 200 to understand the intent of the textualinput from the user.

Additionally, or alternatively, in the case that the user input datacomprises utterance and/or speech input data, optionally S215, whichincludes processing utterance data of the user input data, functions toconvert verbally communicated user input data to textual input data.Accordingly, S215 may function to implementing an automatic speechrecognition system to which a system implementing the method 200 directssome or all utterance or speech input for processing. The automaticspeech recognition system may function to collect the utterance orspeech input, convert the utterance or speech input to textual input,and route the converted textual input to a natural language processingsystem. In such case, the system implementing the method 200 or theautomatic speech recognition system may function to (simultaneously)transmit a copy of the converted textual input to each of aclassification engine and a slot value identification engine.

In a preferred embodiment, the method 200 may function to receive theuser input data via a user interface accessible to or provided to theuser. The user interface receiving the user input data may beimplemented via any suitable computing device and/or form, including butnot limited to, via a mobile computing device, via a web browser (havinga website displayed therein), via a social network interface, via anautomated teller machine, kiosk, wearable computing devices (e.g., smartwatches, smart glasses, etc.), virtual and/or personal assistant devices(e.g., Alexa, Amazon Echo, Google Home, Cortana, Jarvis, etc.), and anysystem having a suitable user interface for implementing the method 200.

Additionally, or alternatively, the user interface may function togenerate one or more graphical user interface objects that enable a userto interact with an artificially intelligent virtual assistant of asystem implementing the method 200. For example, the user interface mayfunction to generate, via a mobile computing device or desktop computingdevice, an animated graphical interface object that may be capable ofconversantly or textually interacting with a user. Additionally, oralternatively, the user interface may function to generate one or moreinput boxes, such as text input boxes, into which a user may freelyenter textual input data.

S220, which includes identifying a competency classification based onthe user input data, functions to implement a trained machine learningmodel that functions to identify a classification label based on aninput of the user input data. The trained machine learning model may beimplemented using a deep machine learning algorithm that was trainedwith user input data samples from one or more data sources includingcrowdsourced data. In a preferred embodiment, the trained machinelearning model may be specifically trained to identify one or more broador coarse areas of competency that are invoked by the user input data.

In a first implementation, the trained machine learning model mayinclude a single deep machine learning model that is trained to identifymultiple areas of competency based on user input data and providecompetency classification labels, accordingly. That is, the trainedmachine learning model may function to ingest the user input data andgenerate a suggestion and/or prediction of a competency classificationlabel that matches at least one of the multiple areas of competency forthe user input data. Each of the multiple areas of competency preferablycorresponds to a distinct area of aptitude of an artificiallyintelligent virtual assistant. Accordingly, the artificially intelligentvirtual assistant may be apt or competent to respond to queries orperform one or more tasks or commands according to the queries and/orcommands identified in user input data. Therefore, a competency asreferred to herein preferably relates to a subject area of comprehensionor aptitude of the artificially intelligent virtual assistant for whichthe artificially intelligent virtual assistant can interact with orprovide a response (including completing tasks) to a user input of textor speech.

According to this first implementation, user input data, preferably inthe form of textual data, may be passed to the competency classificationmachine learning model. At the competency classification machinelearning model, S220 may function to evaluate the user input data usingone or more predetermined algorithms that preferably includes a deepclassification machine learning algorithm. The deep classificationmachine learning algorithm may be configured with features or factorsand associated weights that enable identification of classificationlabels within, at least, one of the multiple areas of competency.

In operation, S220 implementing the competency classification deepmachine learning algorithm may function to analyze the user input dataand generate a classification label. Specifically, based on thefeatures, meaning and semantics of the words and phrases in the userinput data, the competency classification deep machine learningalgorithm may function to calculate and output a competencyclassification label having a highest probability of matching an intentof the user input data. For example, the classification machine learningmodel generate, based on user input data, a classification label of“Income” having a probability of intent match of “89%” for a given queryor command of the user input data, as shown by way of example in FIG.3B.

Additionally, or alternatively, the competency classification deepmachine learning algorithm may function to calculate and output acompetency classification based on one or more key terms and anarrangement of the terms and key terms in the user input data.

Additionally, or alternatively, S220 may function to calculate andoutput a competency classification for each of the multiple areas ofcompetency of an artificially intelligent virtual assistant. In someembodiments, the deep classification machine learning model may beconfigured to calculate a competency classification label andprobability of intent match for each of the known competencies of theartificially intelligent virtual assistant. For example, if theartificially intelligent virtual assistant is configured by a systemimplementing method 200 to be competent in three areas of competencyincluding, Income competency, Balance competency, and Spendingcompetency in the context of a user's banking, then the deepclassification machine learning algorithm may generate a classificationlabel for each of Income, Balance, and Spending.

Additionally, the deep classification machine learning algorithm maycalculate respective probability of intent match values of 89%, 37%, and73%, as shown by way of example in FIG. 3A. In such example, the singledeep classification machine learning algorithm may function to producemultiple, different classification labels based on the same user inputdata. S220 may function to output each of the respective competencyclassification labels and associated probability to the systemimplementing the method 200. Alternatively, S220 may function outputonly those competency classification labels satisfying or exceeding apredetermined competency classification threshold. For example, thecompetency classification threshold may be set at 68% probability ofintent match. In such example, the competency classification thresholdmay function as a filter only allowing generated competencyclassification threshold at or above 68% to be output to the system andpassed to a subsequent process (e.g., S230). Additionally, oralternatively, the competency classification model may be configured orprogrammed to output and pass only the competency classification labelhaving a highest probability of intent match (e.g., Income, 89%).

S220 may function to configure the competency classification machinelearning model to perform a segmented and serial classificationpredictions or estimations using the input user data. As described inthe sections above, the competency classification model may function touse a deep classification machine learning algorithm that is capable ofproducing classification labels and associated probability of intentsmatch value. In such instance, the deep learning algorithm of thecompetency classification model feature and weight components for eachof the multiple areas of competency that enables the competencyclassification model to generate classification labels in each of themultiple areas of competency of an artificially intelligent virtualassistant. To enable the deep classification machine learning algorithmto generate a singular competency classification label and probabilityof intent match value, S220 may selectively activate only those featuresand associated weights of the deep classification machine learningalgorithm that function to generate prediction values for a specificcompetency classification label (e.g., Balance competency). That is, insome embodiments, S220 selectively activates only one competencyclassification segment of the deep classification machine learningalgorithm. In this way, the user input being analyzed, processed, and/orconsumed by the deep classification machine learning algorithm generatesonly one competency classification label (e.g., Balance competencylabel) and associated probability of intent match (e.g., 37%), at atime. An operation of S220 to selectively activate and/or deactivatesegments of the deep classification machine learning algorithm may bebased, in some embodiments, on a pre-processing of the user input datafor key terms. For instance, an instance of the key term “balance” inthe user input data may cause a system implementing the method 200 toautomatically activate the segment of the deep classification machinelearning algorithm that functions to generate a Balance classificationlabel and probability. Other example segments of the deep machinelearning classification algorithm, such as segments for producing anIncome classification label or a Spending classification label may bedeactivated, made dormant, or otherwise, intentionally skipped by thesystem when processing the user input data. Accordingly, key terms inthe user input data may trigger the selective activation and/ordeactivation of segments of the deep competency classification machinelearning algorithm. Additionally, or alternatively, a direct indicationof a competency area may be provided by the user, which may be used bythe system to selectively activate and/or deactivate segments of thedeep competency classification machine learning algorithm.

It shall be noted that while specific classification labels arementioned above (e.g., Income, Balance, Spending, etc.), these aremerely examples of how the methods and systems described herein may beused. Accordingly, the systems and methods may be configured to predictor detect any type of competencies depending on a context ofimplementation.

In a second implementation, the trained machine learning model comprisesan ensemble of specific-competency trained deep machine learningalgorithms. In this second implementation, each of thespecific-competency trained deep machine learning models that is trainedto identify a single type of competency classification label togetherwith an associated probability of intent match based on received userinput data. This may contrast with the first implementation in which asingle trained deep machine learning model functions to produce any orall the competency classification labels.

In this second implementation, S220 may provide the user input data,either synchronously (i.e., in parallel) or asynchronously, to each ofthe specific-competency trained deep machine learning algorithms togenerate a suggestion and/or prediction of a competency classificationlabel and associated probability of intent match, according to thetraining of the specific-competency algorithm that matches at least oneof the multiple areas of competency for the user input data. In thisimplementation, each of the specific-competency deep machine learningalgorithms corresponds to one of the multiple areas of competency oraptitude of an artificially intelligent virtual assistant. In a firstexample, upon receiving user input data, S220 may pass the user inputdata (or copies thereof), in a synchronous fashion, to each of threespecific-competency deep machine learning algorithms, which include: afirst competency machine learning (ML) for classifying user input datarelated to Income, a second competency ML for classifying user inputdata related to Balance, a third competency ML for classifying userinput data related to Spending. In such example, eachspecific-competency algorithm may function to process the user inputdata and generate the classification label along with a probability ofintent match value: e.g., Income ML: 89% Income, Balance ML: 37%Balance, and Spending ML: 73% Spending.

Like the first implementation, each of the competency classificationsand associated probability of intent match values may be output to thesystem implementing the method 200. Additionally, or alternatively, S220may function to apply a predetermined competency threshold to each ofthe outputs of the specific-competency machine learning algorithms tofilter the results, accordingly. Depending on a setting of thepredetermined competency threshold, one or more of the competencyclassification labels may pass to a subsequent process (e.g., S230 orthe like). Additionally, or alternatively, S220 may function to selectthe competency classification output having the highest probability ofintent match value.

It shall be noted that the probability of intent match value generatedby the competency classification models may be represented as aquantitative, qualitative, and/or any suitable value or expression. Asan example, a competency classification model may output a qualitativeexpression of a probability of intent match, such as “High”,“Intermediate”, or “Low” and the like. Additionally, the probability ofintent match value may be expressed in any suitable range, such as forexample, “A, B, C through F”, “0%-% 100”, “Low to High”, etc.

It shall be noted that the predetermined competency threshold may bebased on a statistical analysis of historical user input data and/ortraining user input data used to trained the competency classificationmachine learning algorithms. Accordingly, the predetermined competencythreshold may represent, in some embodiments, a minimum level ofconfidence or level of accuracy of a potential classification label. Asmentioned in passing, the predetermined competency threshold, in someinstances, may applied such that multiple classification labels may befiltered to a next process. In those circumstances, it is possible thatthe user input data includes multiple queries and/or commands thatcontain more than one topic or area of competency (e.g., Income andBalance, or Balance and Spending, etc.). Thus, implementing apredetermined competency or confidence threshold enables theidentification of queries or commands having ambiguous user input orhaving more than one topic of interest to the user.

S230, which includes identifying slot labels for each of the identifiedslots of the user input data, functions to identify a slot label havinga high probability of matching a description of the data elements withina slot of the user input data. Specifically, identifying slot labelpreferably includes identifying a slot classification label generatedusing a slot classification machine learning model. Additionally, oralternatively, S230 may function to tag or augment one or more of thedata elements of the user input data with a slot classification labelthat may generally identify or implicate a predefined categorization ofa data element or a combination of data elements within the user inputdata. The data elements of the user input data may typically relate toeach term, character or group of characters, object, clip of anutterance, or some defined segment of the user input data. For example,a user may provide as text input into a system implementing the method200, the query: “what is my balance today”; in such example, each of theterms “what”, “is”, “my”, “balance”, and “today” may be considered dataelements of the user input data.

In some embodiments, S230 functions to partition/parse each of or acombination of the data elements of user input data into respectiveslots, as shown in FIG. 4. Accordingly, S230 may function to use theslot classification machine learning model to initially partition theuser input data into segments or slots. Once the data elements areslotted, S230 may function to estimate a slot classification label foreach of the segments of the user input data. In the ensuing example,user data input may include the query: “How much did I earn in mychecking account last month?” In this example, S230 may first functionto segment the user input data into slots, such as “[How much] did I[earn] in my [checking account] [last month]?” As demonstrated by thisexample, the parsing or segmentation of the user input data may belimited to data elements that the slot classification model or the likeidentifies as operative or key terms within the user data input. Anynon-operative data elements or terms, such as “did I” or “in my” maysimply be ignored and/or removed from the user input data to form asubset of user input data only including the segmented portions withoperative data elements. Using the slot classification machine learningmodel, S230 may function to prescribe a slot classification label toeach of the slots or segments identified by the data elements that arepositioned between brackets. Example slot classification labels for eachof these segments may include, [How much]: Amount; [earn]: Income;[checking account]: Account; and [last month]: Date Range. A systemimplementing the method 200 may additionally enumerate (e.g., slot 1,slot 2 . . . slot N) each identified slot in the order that the slotsappear in a user data input string.

As mentioned above, the slot classification machine learning model maybe trained to identify any type and an unlimited number of slotclassification labels or values for identified slots. Because thetypical constraints of a rules-based approach do not apply to the slotclassification machine learning model, the slot classification model maybe extended to include predetermined and emerging labels. Accordingly, atechnical benefit of employing the slot classification machine learningmodel includes an inherent flexibility of the machine learning model toextend its slot classification labeling base to include emerging slotclassification labels (including those not previously known duringpre-deployment training the model).

The slot classification machine learning model may be implemented by asingle machine learning algorithm or an ensemble of machine learningalgorithms that function to generate one or more slot classificationlabels for user input data. In a preferred embodiment, the slotclassification machine learning model may be trained using data samplescomprising sample user queries or sample user commands that may bepartitioned in a predefined manner and may be augmented withpredetermined slot classification labels. Specifically, each partitionof the sample user queries or sample user commands may be partitionedinto ideal segments, in advance, thereby allowing the slotclassification machine learning algorithm(s) to discern and/or learnuser input partition schemes as well as slot value classificationmethods. Accordingly, the slot classification machine learning model ispreferably configured for partitioning tokens of the user input datainto differently labeled regions thereby identifying a value and/ormeaning (or computer-comprehensible meaning) of each of the partitionedtokens of the user input data.

In a first implementation, the slot classification model may beimplemented via a singly trained slot classification machine learningalgorithm. The single slot classification machine learning algorithm maybe a comprehensive algorithm capable of learning to classify anunlimited number slot classification labels.

In operation, the comprehensive slot classification machine learningalgorithm may function to estimate or generate one or multiple slotclassifications for each identified slot in user input data. Forexample, an identified slot segment of [how much] may trigger theprescription of, at least, two slot classification labels of Balance andAmount. In some embodiments, the system implementing the method 200 mayfunction to adopt only one slot classification for a given slot of userinput data. In such embodiments, the system may rely on a confidencevalue or an accuracy probability value indicating a likelihood that theslot segment relates to the assigned slot classification value. Thus, insome embodiments, the comprehensive slot classification machine learningalgorithm may also function to generate a confidence value (e.g., 72%)or probability indicating a likelihood that the segment relates to theone or more slot classification labels prescribed to a slot of userinput data.

In this first implementation, to discern a slot classification labelwhen multiple slot classification labels are prescribed for anidentified slot of user input data, S230 may function to apply apredetermined slot classification threshold to the multiple slotclassification labels for the identified slot of user input data. Inthis way, S230 may filter only those slot classification labels withhigh confidence or probability values. Accordingly, the slotclassification threshold may be some predetermined value, such as aminimum confidence or probability value or any suitable statisticalvalue that may be used by a system implementing the method 200 to filterslot classification labels. Additionally, or alternatively, S230 mayfunction to select the slot classification label having a highestconfidence or probability value. Additionally, or alternatively, S230may function to select and use the slot classification label having ahighest confidence or probability value in a primary process of anartificially intelligent assistant and select and use one or more slotclassification labels having relatively lower confidence or probabilityvalues for secondary processes of an artificially intelligent virtualassistant. The primary processes, in such embodiments, may includeprocesses for generating a response to the user input data based atleast in part on the slot classification label having the highestconfidence value. The secondary processes, in such embodiments, mayinclude processes for generating a secondary or backup response to theuser input data based at least in part on the one or more slotclassification labels having the relatively lower confidence values.

In a second implementation, S230 may implement an ensemble of slotclassification machine learning models that function to generate slotclassification labels for user input data. In this implementation, theensemble of slot classification machine learning models may includemultiple, distinct slot classification algorithms (sub-models) that eachfunction to estimate a different or different sets of slotclassification labels for user input data. In operation, each of themultiple, distinct slot classification algorithms may receive as input acopy of the user input data or the segmented user input data (i.e., withthe slot components of the user input data being previously identified).Each of the multiple, distinct slot classification algorithms mayfunction to analyze and process the user input data and potentiallygenerate their own slot classification labels for specific slots of theuser input data. For instance, in some embodiments, a first distinctslot classification algorithm may function only to predict an “Account”classification label when data elements within a slot potentiallyinclude a reference to an account (e.g., checking, savings, etc.). Insuch embodiment, a second distinct slot classification algorithm mayfunction only to predict an “Date Range” classification label when dataelements within a slot potentially include a reference to a date (e.g.,last month).

While many of the multiple, distinct slot classification algorithms mayfunction to generate slot classification labels for the user input data,S230 may function to automatically filter those generated slotclassification labels with confidence or probability values (e.g.,probability of description match) that do not satisfy a predeterminedslot classification threshold. Accordingly, the multiple, distinct slotclassification algorithms may generate hundreds or thousands of slotclassification labels for a given user input data, but only a few (e.g.,2-3) labels may be output to a system implementing the method 200 forfurther processing and or use.

In a third implementation, the competency classification machinelearning model described in S220 may function to work in conjunctionwith or synchronously with the slot classification machine learningmodel described in S230 to determine one or more slot classificationlabels for user input data. In this third implementation, the slotclassification model may be a companion model to the competencyclassification model. In this regard, prior to identifying slotclassification labels for the user input data, the slot classificationmodel may function to receive a competency classification label for theuser input data either directly or indirectly from the competencyclassification model.

S230, preferably implementing the slot classification machine learningmodel, functions to use the identified competency classification labelto identify slot classification labels for the user input data. In thisthird implementation, the competency classification label may functionto define a scope or universe of slot classification labels that may beapplied to the user input data. That is, in some embodiments, theprovisioning of the competency classification label to the slotclassification model filters or limits a number of slot classificationlabels available to the slot classification model during an analysis andprocessing of the user input data. Thus, only a subset or a portion ofthe total number of possible slot classification labels may be used aslabels to the slots of the user input data.

In a variation of this third implementation, the competencyclassification label provided by the competency classification machinelearning model may be used at the slot classification machine learningalgorithm as an activator or deactivator of slot classificationcapabilities of the slot classification model. In some embodiments, whenthe slot classification machine learning model comprises a single,comprehensive slot classification machine learning algorithm, S230 mayfunction to selectively activate or deactivate features or factors ofthe slot classification algorithm. Accordingly, S230 may function toactivate features or factors of the slot classification algorithm thatare relevant to the competency classification label or alternatively,simply deactivate those features or factors of the slot classificationalgorithm that are not relevant (or should not be operational for) tothe provided competency classification label.

Yet still with respect to this variation of the third implementation, ifthe slot classification machine learning model comprises an ensemble ofdistinct slot classification machine learning algorithms, S230 mayfunction to selectively activate or selectively deactivate individualdistinct slot classification algorithms such that only a subset or therelevant distinct slot classification algorithms of the ensemble may beused to identify slot classification labels of user input data.

S240, which includes collecting slot data and associated slotclassification labels of user input data, functions to generate slotvalues by converting or mapping the slot data for a given slot of userinput data and the one or more slot classification labels assigned tothe slot to a machine and/or program-comprehensible object or operation,as shown in FIG. 5. Preferably, once the slot classification machinelearning model at S230 identifies a slot of user input data and providesan associated slot classification label, the slot classification machinelearning model may function to pass the slot and slot classificationlabel data together as slot and slot data packet to a slot extractor. Asmentioned above, the slot extractor, in some embodiments, may be anindependent service from the slot classification machine learning modeland that functions to generate one or more program-comprehensibleobjects or values from the slot and slot data passed from the slotclassification model. Alternatively, the slot extractor may be asub-component of a slot classification system that implements both theslot classification machine learning model and the slot extractor.

In a first implementation, S240 may function to implement or use apredetermined reference table to identify or determine a machine and/orprogram-comprehensible object or operation to map to each slot andassociated one or more slot classification labels of the user inputdata. In such implementation, S240 implementing the slot extractorfunctions to match (or compare) the slot (value or data) and theassociated slot classification label(s) to the predetermined referencetable to identify the program-comprehensible object or operation thatshould be mapped to the slot and the associated slot classificationlabel. In the example user input data: “How much did I earn in mychecking account last month?”, a system implementing the method 200 mayidentify each [How much did I earn], [checking account], and [lastmonth] as meaningful slots. Further, the system using the slotclassification model may assign the slot labels of Income, Account, andDate Range to the slots, respectively. The slots and slot labels of [Howmuch did I earn]—Income, [checking account]—Account, and [lastmonth]—Date Range may be passed to the slot extractor, which functionsto map each of these slots and slot labels to slot extraction value(e.g., a machine and/or program-comprehensible object, value, oroperation). When comparing the slot and slot label against thepredetermined reference table, S240 may identify [How much did Iearn]—Income to an aggregation operation (or other arithmetic function),[checking account]—Account to program-comprehensible terms ofTYPE_CHECKING, and [last month]—Date Range may be converted to an actualdate or time, such as “March 2017”. These slot extraction values may beused in one or more subsequent systems and processes of the method 200to perform one or more actions against the query or command, a dataset,a disparate computing system, and the like.

In a second implementation, S240 may function to implement or usepredetermined rules to identify or determine a machine and/orprogram-comprehensible object or operation to map to each slot andassociated one or more slot classification labels of the user inputdata. Specifically, the predetermined rules may relate to one or morepolicies or instructions that indicate to a manner in which a slot andslot label pair should be converted or a manner in which a slot and slotlabel pair should be mapped to one or more known or existingprogram-comprehensible objects. For instance, one of the predeterminedrules may instruct that when a slot of user input data includes theterms “How much did I earn” (or some variation thereof) and is assigneda slot label of Income, that the slot and slot label should be mapped ordigitally linked to an aggregation operation. In such example, theaggregation operation may be used to sum together (i.e., aggregate)several credits to a user's account or the like over a set period (e.g.,last month).

Additionally, or alternatively, S240 may function to identify ordetermine a machine and/or program-comprehensible object or operation tomap to each slot and associated one or more slot classification labelsof the user input data using sophisticated regular expressions (regex),grammars, arbitrary code/functions, finite automata, and the like.

In a third implementation, S240 may function to implement or use atrained slot extraction machine learning model to identify or determinea machine and/or program-comprehensible object or operation to map toeach slot and associated one or more slot classification labels of theuser input data. The slot extraction machine learning model may functionto receive as input the slot of the user input data and the associatedslot label and output a recommend program-comprehensible object oroperation to which the slot and slot label should be paired to or towhich the slot and slot label pair should be converted before beingpassed to a subsequent process of the method 200.

It shall be noted that any combination of the above-notedimplementations may be implemented by the method 200 to identify ordetermine a machine and/or program-comprehensible object or operation tomap to each slot and associated one or more slot classification labelsof the user input data.

2.2 Artificially Intelligent Response Generation for an AI VirtualAssistant

S250, which includes configuring and executing one or morecomputer-executable operations for generating a response, functions tocollect output values of the natural language processing of the userinput data in steps S210-S240 and uses the output values, as input, togenerate one or more subroutines (i.e., handlers) for handling orperforming one or more tasks according to the input.

In a preferred embodiment, S210 may function to pass to S250 thecompetency classification label for the user input data identified bythe competency classification machine learning model. In suchembodiment, S250 may function to use the competency classification labelto define a universe of functions deployable under the competencyclassification label. Thus, in some embodiments, S250 functions to usethe competency classification label to identify and/or select a set ofavailable competency-specific functions from among multiple disparatesets of competency specific functions that may be applied or executed ina response generation process of S250. In such embodiment, a systemimplementing the method 200 may employ a set of competency-specificfunctions for each of the multiple competency labels. Each set ofcompetency-specific functions includes a plurality of differentfunctions, filters (e.g., data filters), and operations (e.g.,aggregation operations, data fetching, graphics generation, responsegeneration, etc.) that may be applied to datasets and the like whengenerating a response to a user query or a user command (e.g., userinput data) that may be addressable under an identify competency of anartificially intelligent virtual assistant. For example, if a user queryrelates to an Income competency of the AI virtual assistant and islabeled as such by the competency classification model, S250 mayfunction to select or link a response generator to the set Incomecompetency-specific functions (bucket) when generating the AI virtualassistant's response to the user query. In this example, the Incomecompetency-specific functions may include functions that enable fetchingof financial data of the user and operations that enable summation oraggregation of portions of the financial data of the user. In anotherexample, if a user query (e.g., “where am I?”) relates to a Locationcompetency of the AI virtual assistant, S250 may function to select aset of Location competency-specific functions when generating a responseto the query. The location competency-specific function may includefunctions for fetching location data of the user (e.g., GPS data of usermobile device, etc.) and operations to generate a map of an areasurrounding the user's location.

Additionally, S250 functions to use the slot values comprising the oneor more program-comprehensible objects generated at S240 to determine orgenerate the one or more handlers or subroutines for handling orresponding to the user query or user command of the user input data, asshown in FIGS. 6A-6B. Accordingly, S250 may function to use the slotvalues provided by S240 and/or the competency labels provided by S220 todetermine one or more data sources relevant to and for addressing theuser input data and one or more filters and functions or operations toapply to data accessed or collected from the one or more data sources.Thus, the coding of the slots perform by S240 to program-comprehensibleobjects or values may be used to specifically identify the data sourcesand/or the one or more filters and operations for processing the datacollected from the data sources.

In a first example, S250 slot data, such as [checking account] coded orprovided with the slot value of TYPE_CHECKING (e.g., [checkingaccount]→ACCOUNT→TYPE_CHECKING, where ACCOUNT is the slot label andTYPE_CHECKING is the slot value derived from the text data in the slotand the slot label). The slot value of TYPE_CHECKING, in this example,may be used by S250 to generate a handler that functions to identifyand/or select a data source comprising checking account data of theuser. The checking account data may include the user's transaction dataover some period. An additional handler may be generated by S250 thatfunctions to fetch the checking account data including the transactiondata from the identified data source.

Further with respect to this first example, additional slot data fromthe user input data, such as [last month] may be collected by S250 thatmay be coded by S240 with a slot value of DATETIME (“March 2017”). S250may function to use the slot value of DATELINE (“March 2017”) togenerate a handler that is configured to perform a filtering operationagainst data values. Specifically, the filtering operations, as appliedto the fetched transaction data from the user's checking account,functions to filter or extract only transaction data occurring in themonth of March in the year of 2017 as useful data required forresponding to the user query.

Further slot data of the user query of [How much] and [earn] may becollected by S250 wherein the slot data may be coded with the slot valueof AGGREGATION or SUMMATION and the slot value of INCOME, respectively.S250 may function to use the slot value of AGGREGATION or SUMMATION togenerate a first handler that functions to aggregate data values and asecond handler that functions to aggregate only incoming data values.With respect to the above example, S250 using the aggregation handlermay function to sum the values of the incoming transaction datacollected from the user's checking account to arrive at a summed valuepotentially representing the sum of all the credit transactions to theuser's checking account.

Additionally, or alternatively, S250 may function to provide a serialorder (e.g., stacking) to the multiple handlers generated for a specificuser query or command. Generating the serial order for the multiplehandlers may be based on one or more predetermined rules that govern aspecific order for specific combinations and types of handlers. Forinstance, S250 may function to stack, in execution order, each of thehandlers generated for the above-noted example in the following manner:[1] data source ID handler, [2] data fetch handler, [3] data datelinefilter handler, [4] data income filter handler, and [5] data aggregationhandler. Accordingly, S250 may define a handler operation string thatdictates a required order of executing the handlers generated for aspecific user query or command. It shall be noted that in some instancesvarious handlers may be executed synchronously, in which interdependenceexist between handlers, and in other instances, some or all handlers maybe executed asynchronously (in parallel) where there is limited or nointerdependence between the handlers. It shall also be noted that theserial order of the multiple handlers functions to enable a proper orderof applying the handlers to fetched data for the purpose of identifyingan accurate response or generating accurate response data to the userquery and/or user command.

It shall also be noted that while, in the above example and description,S250 functions to generate handlers specifically generated for handlinga user query relating to a monthly earning, the functionality of S250should not be limited to such specific example. S250 may function togenerate any type or variety of handlers required for handling any typeof user query or user command that a system (AI virtual assistant)implementing the method 200 has competency. For instance, S250 mayfunction to generate handlers for creating user interface graphics,response data, graphics, and/or media based on the handlers processed byS250.

S260, which includes generating a response, functions to collect and useoutputs derived in steps S210-S250 to provide a response to a user queryor a user command of the user input data.

In one implementation, S260 may function to implement a responsegenerator that may function to use the competency classification labelof the user input data to identify or select one predetermined responsetemplate or one of a plurality of predetermined response templates. Foreach competency classification label, the system implementing the method200 may implement or have stored a plurality of response templates thatmay be selected by the response generator implemented by S260 based onan identified competency classification label for user input data.Additionally, or alternatively, the response template may be selectedbased on both the competency classification label and one or moregenerated slot values. In such instance, the one or more slot values mayfunction to narrow the pool of response template selectable by theresponse generator to a subset of a larger pool of response templates totake into account the variations in a query or user command identifiedin the slot values. The response templates may generally a combinationof predetermined output language or text and one or more input slots forinterleaving the handler outputs determined at S250.

In second implementation, S260 implementing a response generator mayfunction to use a combination of the competency classification label andthe slot values of the user input data to generate a custom response tothe user query or user command of the user input data. In suchimplementation, S260 may implement one or more predetermined rules thatgovern response construction based on the competency classificationlabel and the slot values of the user data. In some embodiments, thepredetermined rules may be based on user preferences input provided bythe user. Thus, the competency classification label and the slot valuesof the user data may be used by S260 to select (or activate/deactivate)predetermined rules for response construction. By executing thepredetermined rules and providing the handler output data from S250,S260 may function to generate a customer response tailored to the userand the query or the command of the user.

In a third implementation, S260 implementing a response generator mayfunction to one or more segments of the query or command of the userinput data to prefill or populate a response template (or form). Forinstance, S260 may function to identify relevant slot data that may berecycled into one or more sections of a response template. In suchinstance, the response template may be configured with one or moresections for receiving slot data from the user input data. Accordingly,the response template may include one or more slot sections with eachslot section having an associated slot label. Thus, for a given userinput data in which the slots have been identified and slot labelsassigned thereto, the response template may function to automaticallypull slot data of the user input data into its one or more slot sectionsbased on the slot label associated with the slot data.

The system and methods of the preferred embodiment and variationsthereof can be embodied and/or implemented at least in part as a machineconfigured to receive a computer-readable medium storingcomputer-readable instructions. The instructions are preferably executedby computer-executable components preferably integrated with the systemand one or more portions of the processors and/or the controllers. Thecomputer-readable medium can be stored on any suitable computer-readablemedia such as RAMs, ROMs, flash memory, EEPROMs, optical devices (CD orDVD), hard drives, floppy drives, or any suitable device. Thecomputer-executable component is preferably a general or applicationspecific processor, but any suitable dedicated hardware orhardware/firmware combination device can alternatively or additionallyexecute the instructions.

Although omitted for conciseness, the preferred embodiments includeevery combination and permutation of the implementations of the systemsand methods described herein.

As a person skilled in the art will recognize from the previous detaileddescription and from the figures and claims, modifications and changescan be made to the preferred embodiments of the invention withoutdeparting from the scope of this invention defined in the followingclaims.

What is claimed:
 1. A computer-implemented conversational responsesystem comprising: a machine learning-based platform implemented by oneor more computers over the web that implements: a competencyclassification system comprising a plurality of distinct competencyclassification machine learning classifiers, wherein: responsive to userinput data comprising text representation of a user utterance, each ofthe plurality of distinct competency classification machine learningclassifiers outputs a distinct one of a plurality of distinct competencyclassification labels and a level of confidence for each distinct one ofthe plurality of distinct competency classification labels; thecompetency classification system: outputs a single distinct competencyclassification label of the plurality of distinct competencyclassification labels based on the level of confidence associated withthe single distinct competency classification label satisfying acompetency classification threshold; calculates a probability value forthe single distinct competency classification label; a slotidentification system that partitions the text representation of theuser input data into a plurality of distinct segments of text; a slotclassification system comprising multiple, distinct slot classificationrecurrent neural networks, wherein: (i) each of the multiple, distinctslot classification recurrent neural networks is trained, via asupervised training or an unsupervised training, to predict one or moredistinct slot classification labels for distinct segments of text data;(ii) each of the one or more distinct slot classification labelsidentifies a predefined categorization of each of the plurality ofdistinct segments of text; (iii) the slot classification systemselectively activates one slot classification recurrent neural networkof the multiple, distinct slot classification recurrent neural networksbased on receiving the single distinct competency classification labelfrom the competency classification system; (iv) based on an input of theplurality of distinct segments of text, the selected one slotclassification recurrent neural network: (a) estimates one or moredistinct slot classification labels for each of the plurality ofdistinct segments of text; (b) prescribes at least one of the one ormore distinct slot classification labels to each of the plurality ofdistinct segments by pairing the at least one of the one or moredistinct slot classification labels together with each one of theplurality of distinct segments of text; a slot extraction system that:receives one or more distinct slot data packets from the slotclassification system, each of the one or more slot data packetscomprising the pairing of the at least one of the one or more distinctslot classification labels and one of the plurality of distinct segmentsof text; compares one of the one or more distinct slot classificationlabels and the one of the plurality of distinct segments of text of eachpairing to a predetermined reference table; and converts each pairing of(a-i) the at least one of the one or more distinct slot classificationlabels and (b-i) each one of the plurality of distinct segments of textto one of a plurality of distinct machine operations of thepredetermined reference table based on the comparison of the one of theone or more distinct slot classification labels and the one of theplurality of distinct segments of text of each pairing to thepredetermined reference table, wherein the predetermined referencetables includes a plurality of distinct mappings between distinct slotclassification labels and the plurality of distinct machine operations;an observables extraction system that executes each of the plurality ofdistinct machine operations to produce one or more distinct pieces ofresponse data; and a response generating system that: (1) selects aresponse from a plurality of responses, wherein the response comprisespredetermined output text and one or more input slots; and (2) inputsthe one or more distinct pieces of response data into the one or moreinput slots of the response to the user input data.
 2. The systemaccording to claim 1, wherein the plurality of distinct machineoperations includes one or more of: converting a text to a date or adate range; and applying an arithmetic function against a distinctdataset.
 3. The system according to claim 1, wherein the slot extractionsystem uses the single distinct competency classification label for thetext representation of the user input data to restrict one or moredistinct machine operations that can be used for building the one ormore distinct pieces of response data.
 4. The system according to claim1, wherein the plurality of distinct competency classification machinelearning classifiers are trained using crowdsourced training datasamples.
 5. The system according to claim 1, wherein the competencyclassification threshold relates to a minimum level of confidence, whenthe confidence value for the single distinct competency classificationlabel satisfies the competency threshold, the competency classificationsystem outputs the single distinct competency classification label. 6.The system according to claim 1, wherein the slot classification systemenumerates each of the plurality of distinct segments of text within thetext representation of the user input data in an order that each of theplurality of distinct segments of appear within the text representationof the user input data.
 7. The system according to claim 1, wherein: theslot extraction system accesses the predetermined reference table thatincludes a plurality of distinct slot labels mapped to one or moredistinct conversion operations; and the conversion of each distinctpairing of each enumerated slot of one or more tokens and the predictedslot label for the enumerated slot, respectively, to the distinctconversion operation includes: comparing each distinct pairing to thereference table; and identifying a respective conversion operation foreach distinct pairing based on the comparison.
 8. The system accordingto claim 1, wherein the one or more machine operations include one ormore of: applying a filter operation against a dataset; converting agiven slot of the text representation of the user input data to a dateor a date range; and applying an arithmetic function against a distinctdataset.
 9. The method according to claim 8, wherein producing the oneor more distinct pieces of response data includes executing one or moreof: the applying the filter operation against the dataset; convertingthe given slot of the text representation of the user input data to thedate or the data range; and applying the arithmetic function against thedistinct dataset; and returning results of the executing as the one ormore distinct pieces of response data.
 10. The system according to claim1, further comprising: an automatic speech recognition system that:collects and processes utterance input, and simultaneously transmits acopy of the text representation of the user input data to each of thecompetency classification system and the slot classification system. 11.The system according to claim 1, wherein each of the plurality ofdistinct competency classification machine learning classifierscomprises a plurality of distinct weights and associated features thatare selectively activated or selectively deactivated based on the textrepresentation of the user input data.